package org.jeecg.modules.lab.entrust.service;

import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.lab.entrust.entity.LabWentrust;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.lab.entrust.entity.LabEntrustSample;
import org.jeecg.modules.lab.entrust.vo.LabEntrustAnaPageA;
import org.jeecg.modules.lab.entrust.vo.LabEntrustAnaPageB;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;

/**
 * @Description: 委托信息表
 * @Author: jeecg-boot
 * @Date:   2023-07-17
 * @Version: V1.0
 */
public interface ILabWentrustService extends IService<LabWentrust> {

	/**
	 * 添加一对多
	 *
	 * @param labEntrust
	 */
	public void saveMain(LabWentrust labEntrust, List<LabEntrustSample> labSampleList) ;

	/**
	 * 修改一对多
	 *
   * @param labEntrust
	 */
	public void updateMain(LabWentrust labEntrust, List<LabEntrustSample> labSampleList) throws Exception;

	/**
	 * 添加一对多（导入保存）
	 *
	 * @param labEntrust
	 */
	public void importSaveMain(LabWentrust labEntrust, List<LabEntrustSample> labSampleList) ;

	/**
	 * 删除一对多
	 *
	 * @param id
	 */
	public void delMain (String id);

	/**
	 * 批量删除一对多
	 *
	 * @param idList
	 */
	public void delBatchMain (Collection<? extends Serializable> idList);

	/**
	 * 通过id修改状态委托单状态
	 *
	 * @param id
	 */
	public void updateEntStatusById(String id,String auditMark,String nameStr);

	/**
	 * 按月统计当年的委托数量
	 *
	 * @return
	 */
	public LabEntrustAnaPageA queryEntrustYCount();
	/**
	 * 统计当月委托数量
	 *
	 * @return
	 */
	public List<LabEntrustAnaPageB> queryEntrustMCount();

	/**
	 * 更新签名
	 */
    void updatasz(String ides,String encodedUrl);
	/**
	 * 获取用户列表
	 * @return
	 */
	List<LoginUser> getUserList();

	LoginUser getOneUser(String id);

    LoginUser byLoginUser(Integer employeeId);

	/**
	 * 获取获取初审、复审数据列表
	 * @param auditMark
	 * @param entName
	 * @param handler
	 * @param sampleType
	 * @param ,userId
	 * @return
	 */
	public  List<LabWentrust> getAuditList(String auditMark, String entName, String handler, String handlDate,String sampleType, String userId,String userName);

}
